#ifndef _WIFISCAN_H_
#define _WIFISCAN_H_

#ifdef __cplusplus
extern "C" {
#endif
/*=====================================================================================================================
*  HeaderFile Declare
*===================================================================================================================*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "zq_gl.h"
// #include "gl_variable.h"
/*=====================================================================================================================
 *  Macro Definition
 *===================================================================================================================*/
// #define ZQ_WIFI_AP_TRANS_CNT 8  // 定义实际传输的AP最大数量 
#define ZQ_WIFI_AP_TRANS_CNT 15  // 定义实际传输的AP最大数量 
// #define ZQ_WIFI_AP_SCAN_CNT 10	// 定义实际扫描的AP最大数量 
#define ZQ_WIFI_AP_SCAN_CNT 15	// 定义实际扫描的AP最大数量 
#define ZQ_WIFI_AP_LIB_SZIE 30	// 定义AP数据库的最大数量 
#define ZQ_WIFI_SCAN_ROUND	1
#define ZQ_WIFI_SCAN_CHANNEL_ALL	0
#define ZQ_WIFI_SCAN_PERIOD         600

#define ZQ_AP_INFO_BUFLEN			56 * ZQ_WIFI_AP_TRANS_CNT

// wifi scan struct definition -----------------------------------------------------------------------------------------------
typedef struct 
{
	int rssi;
	char ssid[32+1]; // beacon帧上SSID字段最长就是32字节, 注意和系统ql_wifi_ap_info_s定义的不一致
	char mac[18];
}ZQ_AP_INFO;

typedef struct
{
	uint32_t bssid_low; // mac address low
	uint16_t bssid_high;// mac address high
	int8_t rssival; 	// signal strength
	uint8_t rec_idx;	// recommendation index, every scan loop, when update rssi, this value will +1, else will -1; max = 255, min = 0;
	//uint32_t upd_time;
} ZQ_AP_INFO_LIB;

/*********************************************Extern Function Declare*************************************************/
extern void ql_wifiscan_init(void);
extern int zq_GetApNum(void);
extern int zq_GetApInfo(char *buf, int sz);
// extern void ZqBleGetMac(char *mac_buf);

#ifdef __cplusplus
} /*"C" */
#endif

#endif


